#include "Box.h"

namespace steam
{
	namespace wheel
	{


		void Box::getTransform( base::Matrix4& mat ) const
		{
			neT3 t;

			if (m_type == SIMULATE_AUTO)
			{
				t = m_rigidBody->GetTransform();

			}
			else if (m_type == SIMULATE_MANUAL)
			{
				t = m_animatedBody->GetTransform();
			}
			else
			{
				ASSERT(false);
			}

// 			float mat[16] = 
// 			{
// 				t.rot[0][0], t.rot[0][1], t.rot[0][2], 0.0f, 
// 				t.rot[1][0], t.rot[1][1], t.rot[1][2], 0.0f, 
// 				t.rot[2][0], t.rot[2][1], t.rot[2][2], 0.0f, 
// 				t.pos[0],    t.pos[1],    t.pos[2],    1.0f
// 			};

			mat.set(t.rot[0][0], t.rot[0][1], t.rot[0][2], 0.0f, 
				t.rot[1][0], t.rot[1][1], t.rot[1][2], 0.0f, 
				t.rot[2][0], t.rot[2][1], t.rot[2][2], 0.0f, 
				t.pos[0],    t.pos[1],    t.pos[2],    1.0f);
		}

		void Box::setRigidBody( neRigidBody* rigidBody )
		{
			m_rigidBody = rigidBody;
		}

		void Box::setAnimatedBody( neAnimatedBody* animBody )
		{
			m_animatedBody = animBody;
		}

		Box::Box( BoxInfo info, SimulateType type ) : m_info(info), m_type(type), m_rigidBody(NULL), m_animatedBody(NULL)
		{
		}

		const BoxInfo& Box::getInfo() const
		{
			return m_info;
		}

	}
}